#ifndef __APP_ROUTER_H__
#define __APP_ROUTER_H__

#include "app_device.h"

int app_router_init(void);

/**
 * @brief 向消息路由注册设备
 *
 * @param dev 要注册的设备指针
 * @return int 0: 成功，-1失败
 */
int app_router_registerDevice(Device *dev);

/**
 * @brief 下游设备向MQTT发送数据
 * 
 * @param dev 要发送数据的设备指针
 * @param data 数据指针
 * @param len 数据长度
 * @return int 0: 成功，-1失败
 */
int app_router_devToMqtt(Device *dev, void *data, size_t len);

/**
 * @brief MQTT接收数据后，向下游设备转发
 * 
 * @param data 数据指针
 * @param len 数据长度
 * @return int 0: 成功，-1失败
 */
int app_router_mqttToDev(void *data, size_t len);

void app_router_deinit(void);

#endif /* __APP_ROUTER_H__ */